package com.fw.service.bouser;

import java.io.Serializable;
import java.util.List;

import org.springframework.transaction.annotation.Transactional;

import com.fw.service.bean.EntryBean;
import com.fw.service.bean.SearchCriteriaBean;
import com.fw.service.bean.SearchResultBean;
import com.fw.service.bouser.bean.BOUserBean;
import com.fw.service.bouser.bean.SearchBOUserBean;

/**
 * Description: CRUD BO User
 * 
 * @author AS073
 *
 */
public interface BOUserService {

    // "java.util.List.com.fw.service.bean.ErrorBean", List<ErrorBean>
    // "com.fw.service.bouser.BOUserBean", BOUserBean

    @Transactional
    public List<EntryBean<String, Serializable>> createBOUser(BOUserBean boUserBean);

    public BOUserBean getBOUser(Long id);

    @Transactional
    public List<EntryBean<String, Serializable>> updateBOUser(BOUserBean boUserBean);

    @Transactional
    public List<EntryBean<String, Serializable>> deleteBOUser(BOUserBean boUserBean);

    public Boolean checkUniqueUsername(String username);

    public List<BOUserBean> selectAllBOUser();

    public SearchResultBean<BOUserBean> selectBOUser(SearchCriteriaBean<SearchBOUserBean> searchCriteriaBean);

    @Transactional
    public List<EntryBean<String, Serializable>> resetPasswordBOUser(BOUserBean boUserBean);

    @Transactional
    public List<EntryBean<String, Serializable>> changePasswordBOUser(BOUserBean boUserBean);

}
